Embedded control and processing applications typically involve at least one processor and at least one memory to hold instructions and data to determine operation of the processor. The processor typically accesses the memory to obtain instructions and data to apply to those instructions, or to output data representing results of executing the instructions.
In prior art systems, the embedded program memory may be accessed for test purposes and/or to write the firmware and to configure the system. This access in prior systems may be accomplished only via the processor, in other words, by involving the processor to read and write memory locations.
For example, some prior methods of initializing and testing the memory involve writing address and data to registers which are polled by the processor. The processor is then instructed to read or write the data to/from the program memory as commanded.
Using the processor to access program memory is slow and somewhat complicated in operation. It also requires that the processor is operational in order to access the program memory, which may not always be convenient especially during development, test, and manufacture.